E) std::begin

// container
template <class Container>
auto begin(Container& cont)->decltype(cont.begin());
template <class Container>
auto begin(const Container& cont)->decltype(cont.begin());
// array
template <class T, size_t N>
constexpr T* begin(T(&arr)[N]) noexcept;
begin 함수는 iterator의 시작점을 반환한다.
Container의 경우, 내부에 정의된 begin mehod를 호출